#!/bin/bash
#
# Copyright 2020 eBlocker Open Source UG (haftungsbeschraenkt)
#
# Licensed under the EUPL, Version 1.2 or - as soon they will be
# approved by the European Commission - subsequent versions of the EUPL
# (the "License"); You may not use this work except in compliance with
# the License. You may obtain a copy of the License at:
#
#   https://joinup.ec.europa.eu/page/eupl-text-11-12
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" basis,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
# implied. See the License for the specific language governing
# permissions and limitations under the License.
#
#
# This script will report the routing relevant parameters to the OpenVpnClient which will setup the routing tables (see also openvpn_setclientroute)

# NOTE: This script makes use of variables which only get injected by OpenVPN after the handshake (like e.g. "$route_net_gateway"),
#       so use it as an "up"-script


if [ $# -ge '1' ];
then

    #debugging
    SCRIPT_NAME="openvpn_up"
    echo "$SCRIPT_NAME script started..." >> /var/log/eblocker/$SCRIPT_NAME.log

	ID=$1
	IFACENAME=$2
	DNS_SERVERS=`env | sed -n 's/foreign_option_.=dhcp-option DNS //p' | paste -d "," - -`

    # Tell Icapserver that this VPN client instance is ready
    redis-cli PUBLISH "vpn_profile_status:$ID:in" "up $IFACENAME $route_net_gateway $route_vpn_gateway $trusted_ip $DNS_SERVERS" > /dev/null

    #debugging
    SCRIPT_NAME="openvpn_up"
    echo "$SCRIPT_NAME script finished!" >> /var/log/eblocker/$SCRIPT_NAME.log


else
	echo "Wrong number of arguments! Expecting the ID of the VPN instance as the first argument."
fi

